<!--
 * @Author: luqinghua 
 * @Date: 2024-05-24 17:51:05
 * @LastEditors: luqinghua
 * @LastEditTime: 2024-11-20 10:45:13
 * @FilePath: \vite-vue3-template\src\views\demo\test.vue
 * @Description: 
-->

<template>
  <div>
    <!-- <el-input-number v-model="num" style="width: 260px" />
    <el-input-number v-model="num2" style="width: 260px" />
    <el-input-number v-model="res" style="width: 260px" /> -->

    <el-button type="primary" @click="calc()">触发按钮</el-button>
  </div>
</template>
<script lang="ts" setup>
import { log } from 'mathjs'
import { ref } from 'vue'
// import { create, all, type BigNumber } from 'mathjs'

// const math = create(all)
// import { numberFormate } from './mathjs/index'

// let num = ref(987654321987.56)
// let num2 = ref(100234567890.5677)
// let res = ref('0')

function calc() {
  // res.value = numberFormate(num.value + num2.value)
  let item = getAttributeVisible('18', 'treeLeafFlag4')
  console.log(item)
}

function getAttributeVisible(dataType: string, attibute: string) {
  let types = ''
  // 获取应用的属性配置
  // const getVale = attributeConfig.find((item) => Object.keys(item).includes(attibute))

  // foreach 不会终止循环，所以需要使用 for 循环
  for (const item of attributeConfig) {
    if (Object.keys(item).toString().includes(attibute)) {
      // console.log('keys', Object.keys(item).toString())
      types = Object.values(item)[0]
      break
    }
    // console.log('key', item)
  }
  return types.includes(dataType)
  // attributeConfig.forEach((item) => {
  // for (const key in item) {
  //   if (key.includes(attibute)) {
  //     types = item[key]
  //   }
  //   console.log('key', key)
  // }

  // if (Object.keys(item).toString().includes(attibute)) {
  //   types = Object.values(item)[0]
  //   console.log('types', types)
  //   return false;
  // }
  // console.log('item', Object.keys(item).toString())
  // for (const key in item) {
  //   if (key.includes(attibute)) {
  //     types = item[key]
  //   }
  //   console.log('key', key)
  // }
  // })
  // console.log('key.includes(attibute)', types)
  // return types.includes(dataType)
}

/**
 * 组件属性配置
 */
const attributeConfig = [
  {
    'treeLeafFlag,initializeFlag,isTransferTree': '1,2,18'
  },
  {
    'picker,showTime,dateFormat': '6,11'
  },
  { 'max,min': '7,15,8,13,19' }
]

// function numberFormate(number: number | string, precision?: number) {
//   if (typeof number === 'string' && !Number.isNaN(Number(number))) {
//     number = Number(number)
//   }
//   const options: math.FormatOptions = {
//     // precision: 10,
//     precision: 2,
//     notation: 'fixed'
//   }
//   if (precision) {
//     options.precision = precision
//   }
//   const result = math.format(number, options)
//   if (!Number.isNaN(Number(result))) {
//     return Number(result)
//   } else {
//     return result
//   }
// }

// 应用示例：
// const obj = {
//   a: '张三丰',
//   b: '武当真人',
//   c: '2023-10-10至2023-10-12',
//   // d: ['2023-12-11', '2023-12-18'],
//   d: ['2023-12-11', ''],
//   e: '2023-1-12',
//   num: 4.0,
//   f:'10',
//   g:'20',
//   m:'30'
// };

// console.log(math.evaluate('dateCalc(d)', obj));
// console.log('join=', math.evaluate('join(toArray(a,b))', obj));
// console.log('+=', execFun('f+g+m+n', obj),['f','g','m','n']);
// console.log('multiSum', execFun('multiSum(BILL_LIST[apply_money],DETAIL_LIST[apply_money])', multiObj));
// console.log('multiSum', execFun('multiSum(BILL_LIST.apply_money,DETAIL_LIST.apply_money)', multiObj));
// console.log('evaluate', math.evaluate('BILL_LIST.apply_money+DETAIL_LIST.apply_money', multiObj),['']);
// 初始化mathjs
</script>
<style lang="less" scoped></style>
